#ifndef _SET_H_
#define _SET_H_

#include <stdlib.h>

struct set;

struct set* set__empty(void);
int        set__is_empty(const struct set *);
size_t     set__size(const struct set *);
int        set__find(const struct set *, char);
int        set__add(struct set *, char);
int        set__remove(struct set *, char);
int        set__inter(const struct set * s1, const struct set * s2,
		      struct set * si);
int        set__union(const struct set * s1, const struct set * s2,
		      struct set * su);
int        set__copy(const struct set* si, struct set* so);
int        set__compare(const struct set * s1, const struct set * s2);
void       set__free(struct set*);

#endif
